<?php
    require_once("./config.php");
    require_once("./classes/conexao.php");
    require_once("./classes/sessao.php");
    require_once("./classes/interfaces.php");

    session_start();
    if (!isset($_SESSION['ANAWEB']) || $_SESSION['ANAWEB']->RetornaIdioma() == "PT_BR")
    {
        $msg = new Traducao($DOCUMENT_ROOT."/linguas/linguas.xml", "pt-br");
        //include_once("PT_BR.php");
    }
    else
    {
        $msg = new Traducao($DOCUMENT_ROOT."/linguas/linguas.xml", "en-us");
        //include_once("EN_US.php");
    }
    $pagina = new Interfaces();
    //$scripts = array("tree.js","tree_tpl.js","upload_topicos.js");
    $scripts = array("tree.js","tree_tpl.js");
    $pagina->Header("ANAWEB", $scripts);
    $pagina->Body();

    $topico_tag = @$_POST['topico'];


    /* Diretorios com os arquivos de upload, e metadados dos uploads */
    $upload_dir = $DOCUMENT_ROOT."/upload/upload_data";
    $upload_metadata = $DOCUMENT_ROOT."/upload/upload_metadata";


    /* Verifica se o usuario esta logado, e seu tipo de navegacao,
    no modo professor, aparecera a opcao de fazer uploads dos arquivos,
    enquanto no modo aluno, aparecerao a lista de arquivos. */
    if (isset($_SESSION['ANAWEB']))
    {
        $metadata = $upload_metadata."/".$_SESSION['ANAWEB']->RetornaId().".xml";
        if (@$_SESSION['ANAWEB']->RetornaModo() == 'professor')
        {
            if (isset($_FILES['arquivo']['tmp_name']) && !empty($topico_tag))
            {
                /* Gera um nome aleatorio para o arquivo, para que arquivos com o mesmo nome nao
                sejam sobrescritos */
                $old_arquivo= basename($_FILES['arquivo']['tmp_name']);
                $novo_arquivo = hash("crc32",hash("md5",rand(1,50000) . hash("crc32",time()) . $old_arquivo));
                $upload_file = $upload_dir . "/" . $novo_arquivo;

                /* Move o arquivo do diretorio temporario do PHP para o diretorio configurado
                e escreve as informacoes necessarias no arquivo de metadados, caso ocorra erros
                o mesmo sera informado ao usuario */
                if (!is_uploaded_file($_FILES['arquivo']['tmp_name']))
                    die("Erro desconhecido");
                if (!@move_uploaded_file($_FILES['arquivo']['tmp_name'],$upload_file))
                    die("Nao foi possivel escrever em: ".$upload_dir);

                $xml = new DOMDocument("1.0","utf-8");

                /* Verifica se o arquivo de metadados do usuario ja existe, e caso ele exista,
                   carrega o arquivo, mostrando eventuais erros na abertura dele*/
                if (file_exists($metadata))
                {
                    $xml->preserveWhiteSpace=false;
                    if (!@$xml->load($metadata))
                    {
                        echo "Erro ao abrir o arquivo de metadados";
                        unlink($upload_file);
                        exit(1);
                    }
                }
                $xml->formatOutput=true;
                $arquivos = $xml->getelementsbytagname("files");
                if (!$arquivos->length)
                {
                    $arquivos = $xml->createElement("files");
                    $arquivos = $xml->appendChild($arquivos);
                }
                else
                    $arquivos = $arquivos->item(0);

                /* Populando o arquivo XML com os dados necessarios */
                $assunto = $arquivos->getelementsbytagname($topico_tag);
                if (!$assunto->length)
                {
                    $assunto = $xml->createElement($topico_tag);
                    $assunto = $arquivos->appendChild($assunto);
                }
                else
                    $assunto = $assunto->item(0);
                $file = $xml->createElement("file");
                $file = $assunto->appendChild($file);
                if (!empty($_POST['autor']))
                    $autor = $xml->createElement("author", $_POST['autor']);
                else
                {
                    unlink($upload_file);
                    die("Por favor, especifique o nome do autor");
                }
                if (!empty($_POST['descricao']))
                    $descricao = $xml->createElement("description", $_POST['descricao']);
                else
                {
                    unlink($upload_file);
                    die("Por favor, especifique uma descricao");
                }
                $nome_arquivo = $xml->createElement("filename");
                $arq_origin = $xml->createElement("original",$_FILES['arquivo']['name']);
                $arq_armaz = $xml->createElement("stored",$novo_arquivo);
                $data = $xml->createElement("date", date("d/m/Y"));
                $autor = $file->appendChild($autor);
                $descricao = $file->appendChild($descricao);
                $nome_arquivo = $file->appendChild($nome_arquivo);
                $arq_origin = $nome_arquivo->appendChild($arq_origin);
                $arq_armaz = $nome_arquivo->appendChild($arq_armaz);
                $data = $file->appendChild($data);

                $xml->save($metadata);

                echo "<p>".$msg->get('Enviado_Sucesso')."</p>\n";
                echo "<p>".$msg->get('Visualisar_Download').":</p>\n";
                echo "<p><a href=\"baixar.php?prof=".$_SESSION['ANAWEB']->RetornaId()."&arq=$novo_arquivo\">Download</a></p>";
            }
            else
            {
?>
            <h1><?php echo $msg->get('Envio_Arquivos') ?></h1>
            <div id="upload">
            <form name="formupload" enctype="multipart/form-data" action="upload.php" method="post">
            <p>
                    <label for="autor"><?php echo $msg->get('Autor') ?>:</label>
                    <input class="inputtexto" type="text" id="autor" name="autor">
            </p>
            <p>
                    <label for="descricao"><?php echo $msg->get('Descricao') ?>:</label>
                    <input class="inputtexto" type="text" id="descricao" name="descricao">
            </p>
            <p>
                    <label for="topico"><?php echo $msg->get('Topico') ?>:</label>
                    <select name="topico" id="topico" onchange="mudatopico(document.formupload.topico)">
                        <option value="ptoflut"><?php echo $msg->get('Ptoflut') ?></option>
                        <option value="matriz"><?php echo $msg->get('Matriz') ?></option>
                        <option value="sistemas"><?php echo $msg->get('Sistemas') ?></option>
                        <option value="interpolacao"><?php echo $msg->get('Interpolacao') ?></option>
                        <option value="ajdados"><?php echo $msg->get('Ajuste_Dados') ?></option>
                        <option value="reseqnl"><?php echo $msg->get('Reseqnl') ?></option>
                        <option value="siseqnl"><?php echo $msg->get('Siseqnl') ?></option>
                        <option value="derivada"><?php echo $msg->get('Derivada') ?></option>
                        <option value="integral"><?php echo $msg->get('Integral') ?></option>
                        <option selected>-</option>
                    </select>
            </p>
            <!--p>
                    <label for="subtopico">Subtopico:</label>
                    <select name="subtopico" id="subtopico">
                        <option>-</option>
                    </select>
            </p-->
            <p>
                    <label for="arquivo"><?php echo $msg->get('Arquivo') ?>:</label>
                    <input name="arquivo" id="arquivo" type="file">
            </p>
            <script type="text/javascript">mudatopico(0)</script>
            <p>
                    <input class="botao" type="submit" value="Enviar">
            </p>
            </form>
            </div>
<?php
            }
        }
        else
        {
            if (!isset($_GET['topico']))
            {
?>
            <h1><?php echo $msg->get('Arquivos_Consulta') ?></h1>
            <h2><?php echo $msg->get('Topicos_Consulta') ?></h2>
            <div id="upload">
            <form name="formupload" action="upload.php" method="get">
            <p>
                    <label for="topico"><?php echo $msg->get('Topico') ?>:</label>
                    <select name="topico" id="topico" onchange="mudatopico(document.formupload.topico)">
                        <option value="ptoflut"><?php echo $msg->get('Ptoflut') ?></option>
                        <option value="matriz"><?php echo $msg->get('Matriz') ?></option>
                        <option value="sistemas"><?php echo $msg->get('Sistemas') ?></option>
                        <option value="interpolacao"><?php echo $msg->get('Interpolacao') ?></option>
                        <option value="ajdados"><?php echo $msg->get('Ajuste_Dados') ?></option>
                        <option value="reseqnl"><?php echo $msg->get('Reseqnl') ?></option>
                        <option value="siseqnl"><?php echo $msg->get('Siseqnl') ?></option>
                        <option value="derivada"><?php echo $msg->get('Derivada') ?></option>
                        <option value="integral"><?php echo $msg->get('Integral') ?></option>
                        <option selected>-</option>
                    </select>
            </p>
            <!--p>
                    <label for="subtopico">Subtopico:</label>
                    <select name="subtopico" id="subtopico">
                        <option>-</option>
                    </select>
            </p-->
            <input class="botao" type="submit" name="consulta" value="<?php echo $msg->get('Consultar') ?>">
            </form>
            </div>
<?php
            }
            else
            {
                $professor = $_SESSION['ANAWEB']->RetornaProfessor();
                $metadata = $upload_metadata."/".$professor.".xml";
?>
                <h1><?php echo $msg->get('Material_Teorico') ?></h1>
<?php
                switch($_GET['topico'])
                {
                    /* Aritmetica de ponto flutuante */
                    case 'ptoflut':
                        echo "<h2>".$msg->get('Ptoflut')."</h2>";
                        break;
                    /* Aritmetica matricial */
                    case "matriz":
                        echo "<h2>".$msg->get('Matriz')."</h2>";
                        break;
                    /* Sistemas de equacoes algebricas lineares */
                    case "sistemas":
                        echo "<h2>".$msg->get('Sistemas')."</h2>";
                        break;
                    /* Metodos de interpolacao */
                    case "interpolacao":
                        echo "<h2>".$msg->get('Interpolacao')."</h2>";
                        break;
                    /* Ajuste de dados */
                    case "ajdados":
                        echo "<h2>".$msg->get('Ajuste_Dados')."</h2>";
                        break;
                    /* Resolucao de equacoes nao lineares */
                    case "reseqnl":
                        echo "<h2>".$msg->get('Reseqnl')."</h2>";
                        break;
                    /* Sistemas de Equacoes Algebricas Nao Lineares */
                    case "siseqnl":
                        echo "<h2>".$msg->get('Siseqnl')."</h2>";
                        break;
                    /* Integracao e Derivacao Numerica */
                    case "derivada":
                        echo "<h2>".$msg->get('Derivada')."</h2>";
                        break;
                    case "integral":
                        echo "<h2>".$msg->get('Integral')."</h2>";
                        break;
                }

                if (file_exists($metadata))
                {
                    $xml = new DOMDocument("1.0","utf-8");
                    $xml->preserveWhiteSpace=false;
                    if (!@$xml->load($metadata))
                    {
                        echo "<p>Erro ao abrir o arquivo de metadados<p>";
                        unlink($upload_file);
                        $pagina->Footer();
                        exit(1);
                    }
                    $subt = $xml->getelementsbytagname(@$_GET['topico']);
                    if ($subt->length)
                    {
?>

                        <ul>
<?php
                        $arquivos = $subt->item(0)->getelementsbytagname("file");
                        for ($i=0; $i<$arquivos->length; $i++)
                        {
                            $autor = $arquivos->item($i)->getelementsbytagname("author")->item(0)->nodeValue;
                            $desc = $arquivos->item($i)->getelementsbytagname("description")->item(0)->nodeValue;
                            $data = $arquivos->item($i)->getelementsbytagname("date")->item(0)->nodeValue;
                            $link = $arquivos->item($i)->getelementsbytagname("stored")->item(0)->nodeValue;
?>
                            <li>
                            <h2><?php echo $desc ?></h2>
                            <p><?php echo $msg->get('Autor') ?>: <?php echo $autor ?></p>
                            <p><?php echo $msg->get('Enviado_Em') ?>: <?php echo $data ?></p>
                            <p><a href="baixar.php?prof=<?php echo $professor ?>&arq=<?php echo $link ?>" class="button">&nbsp;Download&nbsp;</a></p>
                            </li>
<?php
                        }
?>
                        </ul>
<?php
                    }
                    else
                    {
?>
                        <p><?php echo $msg->get('Material_Nao_Disponivel') ?></p>
<?php
                    }
                }
                else
                {
?>
                <p><?php echo $msg->get('Professor_Sem_Material') ?></p>
<?php
                }
            }
?>
                <br><br>
                <p><?php echo $msg->get('Visualisar_Outro_Professor') ?>
                <form name="alteraprofessor" method="post" action="alteraprofessor.php<?php if (isset($_GET['topico'])) echo "?topico=".$_GET['topico'] ?>">
                <select name="profid" onchange="document.alteraprofessor.submit()">
<?php
                    $conexao = new Conexao();
                    $conexao->Conecta();
                    $sql = $conexao->Executa("SELECT * FROM usuario WHERE tipo_usuario LIKE 'professor'");
                    while ($prof = $sql->FetchRow())
                    {
                        $docs = 0;
                        $arq_doc = "./upload/upload_metadata/".$prof['id_usuario'].".xml";
                        if (file_exists($arq_doc))
                        {
                            $numdoc=DOMDocument::load($arq_doc);
                            $tops = $numdoc->getElementsByTagname(@$_GET['topico']);
                            if ($tops->length)
                                $docs = $tops->item(0)->getElementsByTagname("file")->length;
                        }
?>
                        <option value="<?php echo $prof['id_usuario'] ?>"<?php if ($prof['id_usuario'] == $_SESSION['ANAWEB']->RetornaProfessor()) echo " selected"; ?>><?php echo $prof['nome_usuario']; ?> (<?php echo $docs ?> documentos)</option>
<?php
                    }
                    $conexao->Desconecta();
?>
                </select>
                </form>
                <p>
<?php
        }
    }
    else
    {
        echo $msg->get('Nao_Logado_Msg');
    }
    $pagina->Footer();
?>
